Techniques for search optimization

ABSTRACT

Techniques for optimizing a search are disclosed. In one embodiment, a method for optimizing search on a Web site comprises: receiving from a client computing device a first search request including a first search term, retrieving and rendering to the client computing device first search results including one or more items corresponding to the first search term included in the first search request, receiving from the client computing device a second search request associated with an item of the one or more items rendered with the first search results, retrieving one or more second search terms behaviorally associated with the selected item, and retrieving and rendering to the client computing device second search results corresponding to the one or more second search terms. The second search results may be rendered “in-line.”

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of allowed U.S. application Ser. No.12/985,985, entitled “TECHNIQUES FOR SEARCH OPTIMIZATION,” filed Jan. 6,2011; of which the full disclosure of this application is incorporatedherein by reference for all purposes.

BACKGROUND

Electronic entities having a presence in an electronic environment, suchas may be provided via a Web site or other such source of content, takeadvantage of the full capabilities of modern Web-based services todeliver a compelling user experience. For example, items offered forsale on a Web site may be divided by categories, prices, types, andother identifiers. A user may search for item(s) of interest using asearch service associated with the Web site. Search results for an itemmay include a list of items including, for each item, price,description, images, availability and other types of data associatedwith the item. Once initial search results are received, a user may makefurther search refinements by searching for an item within a particularcategory (e.g., searching for a TV set under “Electronics” category),using particular search criteria (e.g., price range), further definingsearch terms (e.g., defining an original search term “TV” as an “LCDTV”) or otherwise refining his or her search.

However, further refinement of the original search still may not bringthe desired results or get a user closer to his or her search target.For example, additional search terms or phrases may be attempted by auser which may not locate or surface an item the user is seeking.Accordingly, additional time, effort, and resources are spent for anyadditional search for the item requested by a user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an environment in which various embodiments can beimplemented.

FIG. 2 illustrates an environment in which various embodiments may bepracticed.

FIG. 3 illustrates a diagrammatic representation of an environment whichmay incorporate one or more components that are described above inconnection with FIGS. 1 and 2 and that may be used in accordance withvarious embodiments.

FIG. 4 illustrates a process flow diagram for operation of the searchservice in accordance with an embodiment.

FIG. 5 illustrates a process flow diagram for operation of the searchservice in accordance with another embodiment.

FIG. 6 illustrates a process flow diagram for operation of the searchservice in accordance with yet another embodiment.

FIG. 7 illustrates an exemplary Web page showing first search results inaccordance with an embodiment.

FIG. 8 illustrates an exemplary Web page showing second search resultsin accordance with an embodiment.

DETAILED DESCRIPTION

Techniques are presented for conducting search processes, such as searchrequests submitted to at least one data source, in accordance withvarious embodiments. In a Web-based environment, for example, a datasource may include a Web resource, such as a Web site that is suitablefor the World Wide Web and can be accessed through a Web browser anddisplayed on a display element of a computing device, where at leastsome content for the Web site is pulled from at least one data storeagainst which the search request can be executed. A user may conduct asearch for any item of interest (e.g., a product, video or audiocontent, image, and the like) on the Web resource using Web-based searchservices, such as, for example, search engines. One skilled in the artwill appreciate that a variety of Web search services is available to auser nowadays. In one embodiment, Web resources (such as Web pages)visited by a user may contain information for one or more items (e.g.,products or services) that the user located, such as through browsing orsearch.

Ordinarily, users of a Web resource, e.g., an electronic repository,whether in the context of an electronic commerce system, a generalpurpose search engine, or other system, use search terms or searchphrases in order to locate or “surface” an item in the electronicrepository. As should be understood, a combination of search terms maycomprise a query and may contain one or more keywords needed for searchof an item. However, search terms submitted by a user to a searchengine, electronic commerce application or other system may fail tolocate items that the user seeks in an electronic repository. As anon-limiting example, a user may submit one or more search terms in anattempt to locate an item in an electronic commerce system. However, theelectronic commerce system may be unable to locate the item desired bythe user via an initial search based upon the search terms (e.g., asearch that employs word matching of the search terms and text locatedin data fields associated with the item). As a result, the electroniccommerce system may fail to display the desired item to the user. Such afailure can manifest itself if the submitted search terms do not appearin item data that is associated with the item in the electronicrepository.

In a similar scenario, because search engines often rank search resultsthat are returned to a user, search terms (queries) submitted by a usermay result in a ranked list of search results that has not appropriatelyranked items according to the expectation of the user. As onenon-limiting example, upon submission of search terms intended to locateone or more items in an electronic repository, the search results maydisplay the item sought by a user below or outside the initial searchresults, which may cause a less than optimal user experience.Accordingly, the user is forced to refine his or her search by one ofthe methods described above, e.g., by defining a particular searchcategory, using particular search criteria, further defining searchterms or otherwise refining his or her search. However, even this (oftentimes repeated) refinement of search is not a guarantee of successful“surfacing” of a desired item.

In one embodiment, techniques described herein utilize behavioralassociations of unique item identifiers of items and search termsassociated with searched items as described below. An electronic entityassociated with a search engine may track a user search session in orderto identify search terms or search phrases that can be associated withone or more items in the electronic repository. Therefore, it ispossible to identify search terms (e.g., a query including one or moresearch terms) submitted by a user and determine whether the terms couldbe associated with an item in the electronic commerce system bydetecting whether a search engine or search application “surfaces” aparticular item that the user eventually purchases within the samesession. In other words, queries comprised of search terms can bebehaviorally associated with items in the electronic repository if thebehavior of a user while interacting with a system (e.g., a searchengine, electronic commerce system, etc.) illustrates an associationbetween user-submitted search terms and an item.

In one embodiment, an electronic entity associated with a Web page maysupply a unique identifier (item identifier) that is associated witheach item. A unique identifier, in one example, refers to a uniqueidentification number or other alphanumeric string assigned to a productfor identification purposes. The unique identifiers may be internal orspecific to the electronic entity. Alternatively, unique identifiers ofproducts may be supplied by vendors associated with the electronicentity, and may be the same for different electronic entities. A maincharacteristic of a unique identifier is that the identifier can berecognized by an electronic entity. In one embodiment, item identifiersof items may be utilized for associating with search terms used tolocate the items during a search.

In one example, embodiments of the disclosure can determine whethersearch terms are behaviorally associated with an item in an electronicrepository by tracking user behavior within a user session. In the aboveexample, user-submitted search terms can be behaviorally associated withan item that the user eventually purchases within a session. Such abehavioral association can be detected even if a search of theelectronic repository using the user-submitted search terms does notdirectly surface the item that the user eventually purchases.Alternatively, user-submitted search terms (queries) can be behaviorallyassociated with the item in cases, for example, of a user viewing anitem, adding an item to a shopping cart, or other user behavior.

If queries containing one or more search terms submitted by a user arebehaviorally associated with an item in the electronic repository,embodiments described herein can calculate a weight value representing adegree of association between the search query and an item in theelectronic repository. Weight values according to embodiments of thedisclosure can be calculated on an aggregate basis, taking into accountuser sessions of multiple users of a system. An association between anitem and a search term (or a query including one or more search terms)can get stronger when it is determined from tracking user searchbehavior that an item in association with the query has appeared with adetermined frequency. Simply speaking, an association between the query“egg toaster” and a particular product (e.g., an egg toaster) isstronger than an association between the query “egg and muffin maker”and the egg toaster if the association “egg-toaster (query)-egg toaster(item)” is detected more times than the association “egg and muffinmaker (query)-egg toaster (item),” in at least some embodiments.Accordingly, weight values calculated on an aggregate basis can yieldmore accurate associations between search queries and items in anelectronic repository, as such calculations take into account thebehaviors of a larger number of users.

If a calculated weight value representing a degree (level) ofassociation between at least one search query and an item in anelectronic repository exceeds a threshold, the user-submitted searchqueries can be identified by embodiments of the disclosure aspotentially missing search terms (keywords) for the item for which abehavioral association exists. In other words, if a user-submittedsearch query fails to directly surface an item or fails to highly rankan item consistent with the expectations of a user, the search query canbe identified as potentially missing keywords for the item. A thresholdcan be chosen to tune the sensitivity of the detection of potentialmissing keywords. Alternatively, the threshold can be lowered to a lowercalculated weight value (e.g., representing a lesser degree ofassociation) so that more potential missing keywords are identified.Behavioral association techniques are disclosed in U.S. patentapplication Ser. No. 12/560,983 entitled “Identifying Missing SearchPhrases,” filed Sep. 16, 2009, which is incorporated herein by referencein its entirety.

Behavioral associations between searchable items and search queries maybe accumulated and stored in a behavior-based keyword data store(behavioral association data store) and utilized for the purposes ofsearch optimization techniques described herein. In one embodiment, auser conducting an initial search for an item may submit one or moresearch terms comprising a query to a search engine. The search enginereturns search results of items associated with the submitted searchterm (or terms). The initial search results may include item informationassociated with each item, including, for example, images of itemsand/or item descriptions. Also, each item returned with the searchresults may have one or more search queries behaviorally associated withthe item (in one embodiment, with the item's unique identifier).

The search queries may be generated and stored in a behavioralassociation data store as discussed above and retrieved from the datastore as needed. Thus, each search query may be associated with an itemof the search results via a behavioral association described above. Somequeries may have a stronger association with an item than others, asdiscussed above. In one embodiment, only a determined number of searchqueries with the strongest association with the item (e.g., one searchquery) may be retrieved from the behavioral association data store andreturned with the item. For example, in one embodiment, only the searchquery that has the strongest association with the item may be retrieved.

In one embodiment, the search queries behaviorally associated with theitem may be retrieved from the behavioral association data store upon auser request. For example, information for each item returned with thelist of initial (first) search results may include a content element ofany type known in the art that, when accessed, may initiate a requestfor a retrieval of queries behaviorally associated with the item'sunique identifier. The content element may include, but may not belimited to, a hyperlink, a button, an icon, an image, or any other typeof content element accessible (e.g., clickable) by a user. In oneembodiment, a content element may have a descriptor included in theelement to help a user identify the functionality the content elementrepresents. For example, the content element may be implemented as ahyperlink, icon, image, or button with a descriptor “more” or “more likethis.”

In one embodiment, the user may view (e.g., by scrolling down) the firstsearch results list and identify an item in the search results thatmight be “closer” to the desired item, but still not quite the one thatthe user had in mind when commencing the search. In other words, theitem may comply with, or represent, at least one aspect of a user'sintent in conducting the search. This determination may be made based onthe information associated with the item returned in the search results.For example, a user may view the item's description and decide tocontinue a search in the direction identified by the description (e.g.,a user was looking for a TV set and the first search results returnedone LCD TV that the user liked and so the user wanted to search more ofthe LCD TVs). In another example, a user may simply like the look of animage of the item (e.g., a user was looking for sunglasses and likedsunglasses of a particular shape). The user then may want to access thecontent element “more like this” associated with the item the user likedthe best among the returned results. For the purposes of simplicity, theitem that user liked the best among the returned results, i.e., the itemin the search results that is most representative of the user's intent,will be hereinafter called a “similar item.”

When the user clicks on the content element with the descriptor “morelike this” that is associated with the similar item, a request toretrieve search queries behaviorally associated with the similar item isinitiated, the search queries are retrieved from the behavioralassociation data store and sent to the search engine to conduct a searchassociated with the retrieved search terms. As described above, in oneembodiment, only “most popular” search queries, namely the queries withthe strongest association with the similar item, may be retrieved andused in a new search. For example, a predetermined number (e.g. one,two, or three) search queries that have the strongest association withthe similar item may be retrieved for a further search.

A list of new, second search results is then returned to the user. As inthe first search results list, the second list rendered to the user mayinclude “more of this” content elements associated with each returneditem. Thus, the user, if not yet satisfied with the search, may repeatthe above steps again and conduct another search of items that are “morelike” the item selected by the user as a new similar item. In oneembodiment, the second search results may be rendered to a user“in-line,” i.e., without a page reload, via a trusted script embedded inthe page, e.g., Ajax® script. In another embodiment, the second searchresults may be included in a page in a separate space (e.g., a “band”)specially allocated for the search results associated with the “morelike this” functionality.

In one embodiment, only the search query that has a highest level ofbehavioral association with the similar item may be used for further(second) search. One skilled in the art will appreciate that there maybe different selection algorithms aimed at selecting the query with thehighest level of behavioral association with the item among all searchterms behaviorally associated with that item. For example, as discussedabove, an association between an item and a search query gets strongerwhen a substantial statistic is gathered in which an item in associationwith the query has appeared with a frequency exceeding a predeterminedthreshold.

In another example, as should be appreciated by one skilled in the art,the most “specific” behaviorally associated search queries have to bethe most tightly (strongly) associated with the item, and, consequently,have a higher level of behavioral association with the item relative tothat of the less “specific” queries. The behavioral association of itemsto search queries may be explained in the context of “specificity” of asearch query. A behaviorally associated search query will, in general,be more “specific” than an original search query or the queries thatbrought in the last content item (e.g., a Web page) viewed by a user. A“more specific” query may mean that the query contains an extra word orwords further defining the original query. In another embodiment, the“more specific” query may be a query that brought in a number of resultsthat is less than the number any other related query would bring. Forexample, a search for Bob Dylan sunglasses using a query “Bob Dylanapparel” may bring many more results than a search for “Bob Dylansunglasses.” Accordingly, “Bob Dylan sunglasses” is a more specificquery than “Bob Dylan apparel” and has a tighter (stronger) associationwith Bob Dylan sunglasses than the query “Bob Dylan apparel.”

In another embodiment, a more specific query may be selected based onits entropy metrics, e.g., a growing popularity of the query. Forexample, if a particular query has been increasingly used in connectionwith a particular item in a determined period of time, it becomesapparent that the query's “popularity” in connection with the item isgrowing and the query may be more specific than others in identifyingthe particular item.

In yet another embodiment, a degree (level) of behavioral association ofa query to an item may be determined based on a number of differentmetrics; for example, how many items have come up in search resultsbased on the associated search query, how many users “clicked” on theitem found through the associated search query, how many times the itemassociated with the search query have been “added to cart,” orpurchased, and the like. One skilled in the art will appreciate thatthere may be a number of different algorithms for determining a level ofbehavioral association of an item to a particular search query. Themetrics defining the “specificity” or a level of behavioral associationof a search query to an item may be pre-computed and stored along withthe search queries in the behavioral association data store.

In one embodiment, a degree (level) of behavioral association of a queryto an item may be determined based on a direction of the search. Forexample, it may be determined from recorded search history that aparticular query, when used in a search, may be different from one ormore search queries used by the user in the previous search rounds, suchthat the user would have an entirely new direction of further search.

In another example, a “market” analysis of a search query may be donethat would determine whether a query contains a “cluster” of keywordsthat, taken together, define a brand, a line of product, or any type ofa known entity. For example, a search query containing the keywords“red,” “socks,” and “shirt” may be considered as including an entity“red socks” (“red sox”). This query may have a precedence over othersearch queries behaviorally associated with a particular similar itembecause a user is likely to be searching for an item or items associatedwith the brand “red sox” rather than using a query including the words“red,” “socks,” and “shirt” with no meaningful association between thesewords.

The described techniques have a number of advantages over conventional,repeatedly refined searches. First, a user clearly identifies adirection of further search by selecting a similar item in the initialsearch results. The user has at least some concept of a desired objectin his/her mind when he/she conducts initial search. Thus, “sending” thesearch in a desired direction by using search queries associated withthe similar item, in effect, substantially narrows down further searchby effectively “validating” further search.

In contrast, conventional search systems may utilize product-query (orproduct-search term) associations, but in a different, less productiveway, for example, on a “product by product” basis. As anyone who hasdone Web searches knows, a first, initial search typically brings anumber of random results that may or may not present a user with asufficient number of good options. By way of example, a user may clickon one item brought in search results (e.g., LCD TV) and later click onanother item (e.g., red shirts). However, a conventional system wouldassociate an LCD TV with a red shirt for future reference, such as, forexample, for a recommendation “a user who viewed this item also viewedthat item.” Understandably, the data assembled by conventional searchsystems as described above is fairly “noisy” and the “noise” (incorrectitem associations) disappears only when a substantial volume of data hasbeen gathered and processed by the system.

Second, further search is based on behavior-based associations betweenthe new search queries and the similar item that have already beentested numerous times by a plethora of users and therefore are likely tobring the user much closer to the desirable item than a regular “refinedquery” search, for example. This is the case because, in effect, thesecond search involves search queries that have historically been mostused to find the similar item and therefore these queries are mostlikely to bring the desired item to the user.

Third, a user does not have to enter a new, refined search query or eventhink about how to refine the original query. Indeed, all the user hasto do is to visually identify an item among initial search results that,in the user's view, is the closest to a desired item, and click on the“more like this” content element associated with the identified item. Inone embodiment, the second search may render, along with the secondsearch results, the most popular search query associated with thesimilar item and used by the system in the second search.

FIG. 1 illustrates an example of an environment 100 for implementingaspects in accordance with various embodiments. As will be appreciated,although a Web-based environment is used for purposes of explanation,different environments may be used, as appropriate, to implement variousembodiments. The environment 100 includes an electronic client device102, which can include any appropriate device operable to send andreceive requests, messages, or information over an appropriate network104 and convey information back to a user of the device. Examples ofsuch client devices include personal computers, cell phones, handheldmessaging devices, laptop computers, set-top boxes, personal dataassistants, electronic book readers, and the like. The network caninclude any appropriate network, including an intranet, the Internet, acellular network, a local area network, or any other such network orcombination thereof. Components used for such a system can depend atleast in part upon the type of network and/or environment selected.Protocols and components for communicating via such a network are wellknown and will not be discussed herein in detail. Communication over thenetwork can be enabled by wired or wireless connections, andcombinations thereof. In this example, the network includes theInternet, and the environment includes a Web server 106 for receivingrequests and serving content in response thereto, although for othernetworks, an alternative device serving a similar purpose could be used,as would be apparent to one of ordinary skill in the art.

The illustrative environment includes at least one application server108 and a data store 110. It should be understood that there can beseveral application servers, layers, or other elements, processes, orcomponents, which may be chained or otherwise configured, which caninteract to perform tasks such as obtaining data from an appropriatedata store. As used herein, the term “data store” refers to any deviceor combination of devices capable of storing, accessing, and retrievingdata, which may include any combination and number of data servers,databases, data storage devices, and data storage media, in anystandard, distributed, or clustered environment. The application servercan include any appropriate hardware and software for integrating withthe data store as needed to execute aspects of one or more applicationsfor the client device, handling a majority of the data access andbusiness logic for an application. The application server providesaccess control services in cooperation with the data store, and is ableto generate content such as text, graphics, audio, and/or video to betransferred to a viewer, which may be served to the viewer by the Webserver in the form of HTML, XML, or another appropriate structuredlanguage in this example. The handling of all requests and responses, aswell as the delivery of content between the client device 102 and theapplication server 108, can be handled by the Web server. It should beunderstood that the Web and application servers are not required and aremerely example components, as structured code discussed herein can beexecuted on any appropriate device or host machine as discussedelsewhere herein.

The data store 110 can include several separate data tables, databases,or other data storage mechanisms and media for storing data relating toa particular aspect. For example, the data store illustrated includesmechanisms for storing production data 112 and user information 116,which can be used to serve content for the production side. The datastore also is shown to include a mechanism for storing log data 114,which can be used for reporting, generating statistics, and other suchpurposes. It should be understood that there can be many other aspectsthat may need to be stored in the data store, such as for page imageinformation and access right information, which can be stored in any ofthe above-listed mechanisms as appropriate or in additional mechanismsin the data store 110. The data store 110 is operable, through logicassociated therewith, to receive instructions from the applicationserver 108 and obtain, update, or otherwise process data in responsethereto. In one example, a viewer might submit a search request for acertain type of item. In this case, the data store might access the userinformation to verify the identity of the viewer, and can access thecatalog detail information to obtain information about items of thattype. The information then can be returned to the viewer, such as in aresults listing on a Web page that the viewer is able to view via abrowser on the user device 102. Information for a particular item ofinterest can be viewed in a dedicated page or window of the browser.

Each server typically will include an operating system that providesexecutable program instructions for the general administration andoperation of that server, and typically will include a computer-readablemedium storing instructions that, when executed by a processor of theserver, allow the server to perform its intended functions. Suitableimplementations for the operating system and general functionality ofthe servers are known or commercially available, and are readilyimplemented by persons having ordinary skill in the art, particularly inlight of the disclosure herein.

The environment in one embodiment is a distributed computing environmentutilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 1. Thus, the depiction of the system 100 in FIG. 1should be taken as being illustrative in nature, and not limited to thescope of the disclosure.

FIG. 2 shows an example environment 200 in which various embodiments maybe practiced. The environment 200 may be realized utilizing one or moreof the components of the environment described above in connection withFIG. 1. The environment 200, in an embodiment, includes a plurality ofusers operating client computing devices 202 that utilize a network suchas the Internet 204 to browse content of various content providers.While the environment 200 shows the client computing devices 202utilizing the Internet, it should be understood that other networks maybe used as an alternative to or in addition to the Internet 204.Examples of other networks include mobile networks, intranets, andgenerally any suitable communications network. Likewise, it should beunderstood that client computing devices 202 may include personalcomputers, cell phones, handheld messaging devices, laptop computers,set-top boxes, personal data assistants, electronic book readers, andthe like.

In an embodiment, users may interact through devices 202 with otherentities in order to consume content, search for information or itemsfor consumption, purchase items for consumption, and the like. As usedherein, an item for consumption includes any product or item which maybe consumed by a consumer. Examples include tangible items, such asconsumer products. Examples also include electronic items which may bedownloaded and/or streamed, including audio files, video files, andother digital content. Examples of items for consumption also includeservices which may be performed for and/or on behalf of consumers. Asshown in FIG. 2, the environment 200 includes an electronic entity, ormerchant 206. The merchant 206, for example, may operate an electronicmarketplace such that the users may search, via devices 202 utilizingsearch services (e.g., a Web search engine 214), for items forconsumption offered by the merchant 206. The merchant 206 may offeritems for consumption that come from various sources, including themerchant's own sources. For example, the merchant 206 may operatesystems, such as those described above in connection with FIG. 1, thatenable others to utilize the systems to offer items for consumption. Inshort, the merchant 206 may facilitate user search and consumption ofitems or products offered by the merchant 206 and/or vendors 208 and/or210.

For example, in an embodiment, the environment 200 includes one or moreaffiliate or third-party vendors 208. In an embodiment, an affiliatevendor is a merchant who offers for consumption items that are actuallyconsumed by consumers from the merchant 206. Affiliate vendors 208 maycooperate with the merchant 206 in various ways. In one embodiment, themerchant 206 may operate an electronic marketplace, such as a Web site212 and advertise and/or sell items for consumption that are offered bythe affiliate vendor 208. Affiliate vendors 208 may utilize varioussystems provided by the merchant 206, such as electronic search servicesthat enable users to search for items for consumption, and othersystems.

The environment 200 may include one or more subsidiary vendors 210. Inan embodiment, a subsidiary vendor is a merchant whose operations may becontrolled, either completely or partially, by the merchant 206. Forexample, a subsidiary vendor 210 may be operated by the merchant 206,but may offer items for consumption under a different brand than themerchant 206. The subsidiary vendor 210 may offer the same or differentproducts for consumption than the merchant 206. Alternatively, thesubsidiary vendor 210 may be operated by the affiliate vendor 208, butmay offer items for consumption under a different brand than theaffiliate vendor 208, which may be advertised and/or offered for sale bythe affiliate vendor 208 on the merchant 206's Web site 212.

In an embodiment, the environment 200 includes components andinstructions for generating one or more Web sites 212. One or more ofthe Web sites 212 may be operated by the merchant 206, although theyneed not be. The Web sites 212 may offer various types of content, suchas news, video, shopping for products, and the like. The Web sites 212may offer other services, such as content or product search services,audio, social networking services, and the like. While the exampleenvironment 200 shows Web sites for the purpose of illustration, itshould be understood that any type of content provider may be includedin the environment 200 or variations thereof. For example, content maybe provided in various ways, such as through an application interface orthrough other mechanisms that may not be properly classified as Websites.

As noted, in an embodiment, the users may interact with content from thevarious entities, such as by searching products offered by the entities,viewing content from the entities, consuming items from the entities,and the like. In order to search for products or other content providedby the entities, the users may utilize a search service, e.g., the Websearch engine 214. As one skilled in the art will appreciate, a Websearch engine may be a software or a combination of software andhardware designed to search for information on the Internet. The searchengine may be rendered to a client device 202 via a particular Web siteor Web sites, such as the Web sites 212. The Web search engine 214 maybe affiliated with the merchant 206 in a number of different ways, suchas, for example, it may be designed and/or owned by the merchant 206,operated by the merchant 206, contracted by the merchant 206, beindependent or autonomous from the merchant 206, and the like.

FIG. 3 shows an illustrative environment 300 that an electronic entitysuch as the merchant 206 may utilize in order to provide a user with anability to repeatedly search for product items or other content offeredby the merchant 206 and/or vendors 208 and 210 in accordance with anembodiment. The environment 300 may be implemented to increase searchefficiency for the users utilizing one or more client devices 202 andthus increase effectiveness for one or more of the entities 206, 208,and/or 210 shown in FIG. 2. In an embodiment, the environment 300 ofFIG. 3 is utilized by an electronic entity (such as the merchant 206shown in FIG. 2) to provide an improved search experience to a userusing a search service described herein. It is to be understood that thesearch service may comprise a number of various implementations,including, but not limited to, a software application component executedon a computing device, such as one or more Web servers. In oneembodiment, the service may be offered as a part of remote computingservices that together make up a cloud computing platform, offered overthe Internet. The service may be configured to run in a Web serverenvironment, such as a pure Java HTTP Web server environment.

In an embodiment, the environment 300 includes a client computing device302 utilized by a user for interaction with electronic entities thatprovide content. Content may be accessed by a user operating the device302 through a browser 304. For example, content may include products oritems of various types that are to be placed on a Web site 306. The Website 306 may utilize a search engine 308 in order to provide a user withthe ability to search for products offered by the merchant 206 or otherentities. The content may be stored in the remote content data store(s)314, 316, and 318 and may be utilized by merchants, Web sites, or otherentities in order to provide users an opportunity to search for, andview, items for consumption and/or other content. In an embodiment, thecontent data stores 314-318 store content to be provided to users, suchas when users request the content by navigating to a Web site 306operated by a merchant (e.g., merchant 206 on FIG. 2) through a Webserver 320. In one embodiment, one or more of the data stores 314-318may be allocated as a behavioral association data store to storeinformation related to behavioral associations between items (or itemunique identifiers) and search queries. Alternatively, informationrelated to behavioral associations may be stored in a local data store310. The local data store 310 may be implemented in a number ofdifferent ways. For example, in an embodiment, the data store 310 maycomprise a dedicated database accessible by the trusted script 312. Insome Web environments, such as, for example, one provided by theHyperText Markup Language (HTML) 5, the local data store 310 may beallocated within a Web site or within a domain. For example, the localdata store 310 may be embedded in the pages of the Web site 306 and maybe shared with any page visited by the user on that Web site.

It will be appreciated that the content may be stored in one or moredata stores and that three data stores 314, 316, and 318 are shown forpurely illustrative purposes, such that the number of data stores is notlimited to three or any other number. The term “remote” used inconjunction with the term “data store” simply means that the data stores314, 316, or 318 are not placed in an application operating on thecomputing device 302 or in the computing device itself. The remote datastores may be accessible with the search engine 308 through the Internetor any other type of computer network known in the art. The remote datastores may be associated with the electronic entity, such as above-notedmerchant 206. For example, the remote data stores may be associated withthe server 320 serving the Web site 306 operated by the merchant 206.

In an embodiment, a trusted script 312, implemented in one embodiment asan Ajax® script and operating on the Web site 306 that is loaded by thebrowser 304, is configured to provide search results for the secondsearch “in-line,” i.e., without reloading the results page. In someembodiments, the trusted script may also be implemented as anActionScript®, JavaScript®, VBScript®, Java Servelet®, Flash®, JScript®or other scripting languages. The trusted script 312 may be loaded on apage of the Web site 304 when a user accesses the Web site. In anotherembodiment, the trusted script may be implemented as an extension (i.e.,a plug-in application) to the browser.

In operation, Web site 306 is displayed on computing device 302 via thebrowser 304. A user may conduct a search using search engine 308 inorder to search items in one or more data stores 314-318. When a usersends a first search request for an item via the search engine 308, thedata corresponding to the user's request is assembled and returned tothe user via the Web site 306 served by the server 320 and rendered bybrowser 304 on computing device 302. The returned data may also bestored in the local data store 310. As described above, the returneddata may include item identifiers of returned items. When the userselects a similar item and submits a second, “refined” search request“more like this” via the search engine 308, the server 320 will retrievecorresponding behavioral associations between the item identifier andsearch queries from the behavioral association data store, determine thesearch query with the strongest association with the item (in oneembodiment, this determination may have been made in advance andrelevant information stored with the search queries), and conduct asecond search using the search query with the strongest association. Asdescribed above, in one embodiment, a predefined number of searchqueries with the strongest association with the item may be used. Thereturned data is subsequently rendered for display to the user'scomputing device 302 via the Web site 306. The returned results may bedisplayed “in-line,” without a page reload, via the trusted script 312.

FIG. 4 illustrates a process flow diagram for the operation of thesearch service described herein in accordance with an embodiment. Theprocess 400 starts at block 402 where behavioral associations of eachsearchable item and search queries are generated. As described above,the search queries may be selected based on recorded user behaviorduring search for items. The search queries may be associated with anitem identifier of each item. In one embodiment, the search queriesbehaviorally associated with each item are stored in a behavioralassociation data store accessible by a Web server providing the searchservice.

At block 406 the first search request is received. The request maycontain a search query comprising one or more keywords. At block 410,the first search results associated with the request are returned andrendered to the user's computing device. As described above, thereturned results may contain items, item description, item identifiers,and/or other such information. The associated item information mayinclude, but is not limited to, price, availability, shippingrequirements, and so on. In one embodiment, the returned results mayinclude a content element rendered with the item information for eachitem, e.g., an icon, a button, a hyperlink, or any other content elementconfigured to be accessible by the user and, when accessed, to cause aretrieval of the search queries behaviorally associated with the itemand stored in the behavioral association data store. As noted above, thecontent element may be marked with a descriptor “more,” “more likethis,” or the like.

At determination block 416, it is determined whether a second searchrequest is received. The second search request may be initiated by theuser accessing a content element associated with the item that, inuser's view, is a similar item, but not quite the one. If the requesthas been received, the process moves to block 420 where the behavioralassociations of the item identifier of the similar item with the searchqueries are retrieved from the behavioral association data store. Atblock 424, the query with the strongest association with the itemidentifier is selected from the retrieved item identifiers. As describedabove, the determination regarding a level of association between anitem and each search query may be pre-computed. Alternatively, thisdetermination may be made each time the request for retrieval ofbehaviorally associated search queries is received. Various selectionalgorithms described above may be used for the level of associationdetermination.

At block 428, a search for items associated with the search queryselected in the previous step is conducted. The item information isretrieved from one or more data stores associated with the Web site inaccordance with the request. Finally, at block 432, the second searchresults are rendered for display to the user and the process 400 ends.In one embodiment, the results retrieved at block 414 may be firstrendered for display “in-line” using a trusted script embedded in a pageof the Web site as described above. In this instance, the page does nothave to be reloaded. The second search results may include the searchquery identified by the search system and used in the second search.

It is to be understood that a user may conduct any number of searches,such as more than two searches as described above. In this case, asubsequent search may utilize the search techniques described above: auser may again select a “more like this” content element associated withanother similar item returned with the second search results as a resultof the previous search and the process of selecting a search query withthe strongest behavioral association with that item and subsequentsearch utilizing the selected query may occur.

FIG. 5 illustrates the process flow diagram for the operation of oneaspect of the search service in accordance with an embodiment.Specifically, FIG. 5 illustrates a method for determination of searchqueries behaviorally associated with an item searchable on the Web site.The method involves assembling and recording information related tousers' search for items on the Web site using various search queries. Asdiscussed above, a search query may comprise one or more keywords to beinput in a search engine, e.g., “Panasonic TV,” “LCD TV,” “TV set,”“television set” and the like. At block 502, for all items, the searchqueries used by users in relation to a particular item are identified.For example, if the queries “Panasonic TV” and “LCD TV” were used toidentify (e.g., by clicking, viewing, or purchasing) a particulartelevision set (e.g., a Panasonic LCD TV of a particular model), theidentified television set will be associated with the search queries“Panasonic TV” and “LCD TV.”

At decision block 506, it is determined whether a user behaviordemonstrates a behavioral association of an item and a search query. Asnoted above, a behavioral association can be detected by analyzing usersession data of user sessions. Accordingly, if it is determined that oneor more search queries are not behaviorally associated with an item,these search queries may be excluded from a behavioral association. Forexample, it may be determined that the search query “LCD TV” has a weakbehavioral association with the Panasonic LCD TV of the particular modeland thus should not be included in the list of search queriesbehaviorally associated with that TV set. This determination, i.e. adetermination of a degree (level) of association may be implemented in anumber of ways, as briefly described above.

For example, a weight value may be calculated based on user session datathat reveals the activity of a user in relation to a search for theitem. If a user purchases a product for which a behavioral associationexists, this activity can be weighted heavily, as a purchase decisioncan be deemed to represent a high degree of behavioral association.Likewise, if a user views an item and adds the item to a shopping cart,but does not purchase the item, this activity can be weighted less thana purchase decision. Additionally, if a user simply views an item butfails to either add the item to a shopping cart or purchase the item,this activity can be weighted to an even lesser degree when calculatinga weight value. Accordingly, at block 506 a determination is made as towhether a behavioral association between the query and item exists, anda level (degree) of the behavioral association may also be calculated.The level of association may be determined at different times. Forexample, as described above, the level of association may be calculatedwhen a request for a search query with the strongest behavioralassociation is received from a user accessing the “more like this”content element associated with the similar item returned by the initialsearch as described above in reference to FIG. 4.

If it is determined that a search query belongs to a list of searchqueries behaviorally associated with a particular item, at block 510 thequery is added to the list of behaviorally associated search queries. Atblock 514, the list may be stored in one or more behavioral associationdata stores. As noted above, the data store may be implemented as a“remote” or “local” data store depending on a particular implementationof the search service described herein. Thus, a database of searchqueries behaviorally associated with the items searchable on the Website may be assembled and the process 514 ends.

FIG. 6 illustrates a process flow diagram for the operation of thesearch service in accordance with an embodiment. At block 602, the firstsearch request (as described in reference to FIG. 4) is received, acorresponding search is executed, and first search results are providedand rendered for display. At decision block 606, it is determinedwhether an item that in user's view is similar to a desired item amongthe items returned with the first search results has been identified. Ifthe similar item has been identified, at decision block 610 it isdetermined whether a search query with the strongest behavioralassociation with the similar item has been identified. If no such queryhas been identified, at block 614 a selection algorithm implemented asdescribed above is applied in order to identify a search query with thestrongest behavioral association with the similar item.

It should be noted that, in some embodiments, more than one search querywith the strongest behavioral associations may be identified. Forexample, a number of search queries with the strongest behavioralassociation to be selected among the search queries may be predetermined(e.g., two, three, or four queries). In one embodiment, all searchqueries that have a behavioral association with the item may be selectedto be used in further search. When the search query with the strongestbehavioral association with the similar item has been identified, atblock 618, a new search utilizing the selected query is conducted andthe results are rendered to the user. In one embodiment, the selectedquery may also be rendered to the user so that the user can ascertainwhich query was selected to assist the user in his/her search.Subsequently, the user may refine his or her search by selecting anothersimilar to a desired item rendered in the search results and receivingthe new search results associated with the search query with thestrongest behavioral association with the new similar item.

FIG. 7 illustrates an exemplary Web page 700 showing search results inaccordance with an embodiment. The Web page includes a number of itemcategories 702 as shown on the left side of the page 700, such as “any,”“music,” “books,” “movies,” and “downloads.” It will be appreciated thatany number of item categories of any kind may be included in the Webpage. Alternatively, the Web page may contain no categories at all; theitem categories are shown in FIG. 7 for illustrative purposes only. Thepage 700 includes the search window 704 and the search button. As shownin the window 704, a user is conducting a search for “John Doe.” The(first) search results 706 are displayed in response to the search for“John Doe.” The search results, as shown in FIG. 7, may include CDs ofJohn Doe, John Doe's biography, John Doe's MP3 available for download,John Doe's memoirs, and biography.

Additional information associated with each search result (item) may bepresented, such as an indication whether the item is new or used, price,shipping information, availability information and the category to whichthe item belongs. The item information may contain the item description,such as, for example, item 1, a CD, is described as “John Doe's SilverCollection 1,” item 2 is “John Doe's Biography,” item 3 is “John Doe'sSilver Collection 2,” and so on. A content element 710 described abovein reference to FIG. 4 is also included in the item information for eachitem in the search results. As illustrated, the content element includesa descriptor “more like this.” As noted above in reference to FIGS. 4-6,clicking on the “more like this” element associated with a similar itema user may trigger further, more focused search. In this particularexample, a user clicked on the “more like this” element next to item 2“John Doe's Biography,” as illustrated by a cursor 712 applied to thecontent element. As described above in reference to FIGS. 4-6, thisaction may trigger a retrieval of the search queries behaviorallyassociated with item 2, a selection of the search query with thestrongest behavioral association with item 2, and subsequent searchusing the selected query.

FIG. 8 illustrates an exemplary Web page showing the refined searchresults in accordance with an embodiment. The refined (second) searchresults are returned in response to a search using the selected querywith the strongest behavioral association with item 2. FIG. 8 includesthe Web page 800 with a Web browser which renders page 800 for displayto the user. As in FIG. 7, the Web page contains search results 806including the “more like this” content elements 810 associated with eachitem returned in the search results 806. The Web page further includes anumber of item categories 802 as shown on the left side of the page 800,such as “any,” “music,” “books,” “movies,” and “downloads.”

A search query with the strongest association with item 2 that has beenidentified and used in the current search may be shown in the searchwindow 804. As illustrated in window 804, the selected search query thatwas used in the current search is “John Doe books.” As shown in thesearch results 806, all items returned with the search results areindeed books or related to books written by, or about, John Doe. Asnoted above, a user may further narrow down his/her search by clickingon the “more like this” content element associated with the item that,in user's view, is the closest to the item desired by the user. Theprocess will then again retrieve and select a search query with thestrongest behavioral association with the newly identified similar item,the new search using the selected query will be conducted, and newsearch results will be returned and rendered to the user.

As discussed above, the various embodiments can be implemented in a widevariety of operating environments, which in some cases can include oneor more client computers, computing devices, or processing devices whichcan be used to operate any of a number of applications. Client devicescan include any of a number of general purpose personal computers, suchas desktop or laptop computers running a standard operating system, aswell as cellular, wireless, and handheld devices running mobile softwareand capable of supporting a number of networking and messagingprotocols. Such a system also can include a number of workstationsrunning any of a variety of commercially available operating systems andother known applications for purposes such as development and databasemanagement. These devices also can include other electronic devices,such as dummy terminals, thin-clients, gaming systems, and other devicescapable of communicating via a network.

Various aspects also can be implemented as part of at least one serviceor Web service, such as may be part of a service-oriented architecture.Services such as Web services can communicate using any appropriate typeof messaging, such as by using messages in extensible markup language(XML) format and exchanged using an appropriate protocol such as SOAP(derived from the “Simple Object Access Protocol”). Processes providedor executed by such services can be written in any appropriate language,such as the Web Services Description Language (WSDL). Using a languagesuch as WSDL allows for functionality such as the automated generationof client-side code in various SOAP frameworks.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially available protocols, such as TCP/IP, OSI, FTP,UPnP, NFS, CIFS, and AppleTalk. The network can be, for example, a localarea network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network, and any combination thereof.

In embodiments utilizing a Web server, the Web server can run any of avariety of server or mid-tier applications, including HTTP servers, FTPservers, CGI servers, data servers, Java servers, and businessapplication servers. The server(s) also may be capable of executingprograms or scripts in response to requests from client devices, such asby executing one or more Web applications that may be implemented as oneor more scripts or programs written in any programming language, such asJava®, C, C# or C++, or any scripting language, such as Perl, Python, orTCL, as well as combinations thereof. The server(s) may also includedatabase servers, including without limitation, those commerciallyavailable from Oracle®, Microsoft®, Sybase®, and IBM®.

The environment can include a variety of data stores and other memoryand storage media as discussed above. These can reside in a variety oflocations, such as on a storage medium local to (and/or resident in) oneor more of the computers or remote from any or all of the computersacross the network. In a particular set of embodiments, the informationmay reside in a storage-area network (“SAN”) familiar to those skilledin the art. Similarly, any necessary files for performing the functionsattributed to the computers, servers, or other network devices may bestored locally and/or remotely, as appropriate. Where a system includescomputerized devices, each such device can include hardware elementsthat may be electrically coupled via a bus, the elements including, forexample, at least one central processing unit (CPU), at least one inputdevice (e.g., a mouse, keyboard, controller, touch screen, or keypad),and at least one output device (e.g., a display device, printer, orspeaker). Such a system may also include one or more storage devices,such as disk drives, optical storage devices, and solid-state storagedevices, such as random access memory (“RAM”) or read-only memory(“ROM”), as well as removable media devices, memory cards, flash cards,and the like.

Such devices also can include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device), and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a computer-readable storagemedium, representing remote, local, fixed, and/or removable storagedevices, as well as storage media for temporarily and/or morepermanently containing, storing, transmitting, and retrievingcomputer-readable information. The system and various devices alsotypically will include a number of software applications, modules,services, or other elements located within at least one working memorydevice, including an operating system and application programs, such asa client application or Web browser. It should be appreciated thatalternate embodiments may have numerous variations from that describedabove. For example, customized hardware might also be used and/orparticular elements might be implemented in hardware, software(including portable software, such as applets), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

Storage media and computer-readable media for containing code, orportions of code, can include any appropriate media known or used in theart, including storage media and communication media, such as, but notlimited to, volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage and/or transmissionof information such as computer-readable instructions, data structures,program modules, or other data, including RAM, ROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disk (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe system device. Based on the disclosure and teachings providedherein, a person of ordinary skill in the art will appreciate other waysand/or methods to implement the various embodiments.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the presentdisclosure as set forth in the claims.

What is claimed is:
 1. A computer-implemented method for optimizingsearch on a Web site, comprising: receiving a search request associatedwith a first set of search results; identifying a set of queriesassociated with user behavior data corresponding to at least one item inthe first set of search results; determining at least one updated queryfrom the set of queries, the at least one updated query having a levelof behavioral association with the at least one item at least meeting abehavioral association threshold value; and providing a second set ofsearch results corresponding to the at least one updated query, thesecond set of search results including at least one different item fromthe first set of search results.
 2. The computer-implemented method ofclaim 1, further comprising: receiving a selection of the at least oneitem from the first set of search results, the selection requesting theset of queries associated with the at least one item.
 3. Thecomputer-implemented method of claim 2, further comprising: causing acontent element associated with the at least one item to be displayed,wherein, when selected, the content element causes the set of queriesassociated with the at least one item to be displayed.
 4. Thecomputer-implemented method of claim 1, further comprising: determininga level of behavioral association between the at least one item and eachquery in the set of queries, the level of behavioral associationrepresented as a weighted value based at least in part on the userbehavior data;
 5. The computer-implemented method of claim 1, furthercomprising: providing the first set of search results on a web page; andwherein the second set of search results is provided on the web pagewithout reloading the web page.
 6. The computer-implemented method ofclaim 5, wherein providing the second set of search results furthercomprises: providing a script associated with the web page.
 7. Thecomputer-implemented method of claim 1, wherein the level of behavioralassociation is based at least in part on a frequency of appearance of aquery in connection with an associated item in the recorded behavior ofthe plurality of users.
 8. A computer system comprising: at least oneprocessor; and at least one memory having computer-executableinstructions that, when executed by the processor, cause the computersystem to: receive a search request associated with a first set ofsearch results; identify a set of search queries associated with userbehavior data corresponding to at least one item in the first set ofsearch results; determine at least one updated search query from the setof search queries, the at least one updated search query having a levelof behavioral association with the at least one item at least meeting abehavioral association threshold value; and provide a second set ofsearch results corresponding to the at least one updated search query,the second set of search results including at least one different itemfrom the first set of search results.
 9. The computer system of claim 8,wherein the computer executable instructions, when executed by theprocessor, further cause the computer system to: receive a selection ofthe at least one item from the first set of search results, theselection requesting the set of queries associated with the at least oneitem.
 10. The computer system of claim 9, wherein the computerexecutable instructions, when executed by the processor, further causethe computer system to: cause a content element associated with the atleast one item to be displayed, wherein, when selected, the contentelement causes the set of queries associated with the at least one itemto be displayed.
 11. The computer system of claim 8, wherein thecomputer executable instructions, when executed by the processor,further cause the computer system to: determine a level of behavioralassociation between the at least one item and each query in the set ofqueries, the level of behavioral association represented as a weightedvalue based at least in part on the user behavior data;
 12. The computersystem of claim 8, wherein the computer executable instructions, whenexecuted by the processor, further cause the computer system to: providethe first set of search results on a web page; and wherein the secondset of search results is provided on the web page without reloading theweb page.
 13. The computer system of claim 12, wherein the computerexecutable instructions to provide the second set of search results,when executed by the processor, further cause the computer system to:provide a script associated with the web page.
 14. The computer systemof claim 8, wherein the level of behavioral association is based atleast in part on a frequency of appearance of a query in connection withan associated item in the recorded behavior of the plurality of users.15. A non-transitory computer-readable storage medium havingcomputer-executable instructions stored thereon that, when executed by acomputer, cause the computer to: receive a search request associatedwith a first set of search results; identify a set of search queriesassociated with user behavior data corresponding to at least one item inthe first set of search results; determine at least one updated searchquery from the set of search queries, the at least one updated searchquery having a level of behavioral association with the at least oneitem at least meeting a behavioral association threshold value; andprovide a second set of search results corresponding to the at least oneupdated search query, the second set of search results including atleast one different item from the first set of search results.
 16. Thenon-transitory computer-readable storage medium of claim 15, wherein thecomputer executable instructions, when executed by the computer, furthercause the computer to: receive a selection of the at least one item fromthe first set of search results, the selection requesting the set ofqueries associated with the at least one item.
 17. The non-transitorycomputer-readable storage medium of claim 16, wherein the computerexecutable instructions, when executed by the computer, further causethe computer to: cause a content element associated with the at leastone item to be displayed, wherein, when selected, the content elementcauses the set of queries associated with the at least one item to bedisplayed.
 18. The non-transitory computer-readable storage medium ofclaim 15, wherein the computer executable instructions, when executed bythe computer, further cause the computer to: determine a level ofbehavioral association between the at least one item and each query inthe set of queries, the level of behavioral association represented as aweighted value based at least in part on the user behavior data;
 19. Thenon-transitory computer-readable storage medium of claim 15, wherein thecomputer executable instructions, when executed by the computer, furthercause the computer to: provide the first set of search results on a webpage; and wherein the second set of search results is provided on theweb page without reloading the web page.
 20. The non-transitorycomputer-readable storage medium of claim 15, wherein the level ofbehavioral association is based at least in part on a frequency ofappearance of a query in connection with an associated item in therecorded behavior of the plurality of users.